<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * 以某个字符为起点的最长字串长度
         * 如果遇到重复的字符(在之前的子串中已经包含的字符)，则更新起点字符串，左指针左移
         * 若没重复，则右指针右移
         * 动态求字符串长度，
        */
        /**
         * const str='abcabcbb';
         * abc
         * bca
         * cab
         * abc
         * bc
         * cb
         * b
         * b
        */
        // const str='bbbbb';
        const str='pwwkew';
        const s=new Set();
        let strLen=str.length;
        let left=0;//左指针，更新起点
        let right=0;//右指针，添加长度
        let max=0;//最长子串长度
        while(left<strLen && right<strLen){
            if(!s.has(str[right])){
                s.add(str[right]);
                max=Math.max(max,right-left+1);
                right++;
            }else{
                s.delete(str[left]);
                left++;
            }
        }
        console.log(max);
    </script>
</body>
</html>